#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn = 300;
int dp[1<<20]; // i 所表示的点的最大权值
int n;
int node[maxn]; // 记录第i 条边连接的 两个点
int wei[maxn]; // 记录第 i 条边的权重

void solve(){
	cin>>n;
	int cnt=0;
	for (int i=2;i<=n;i++) { // 边的个数
		for (int j=i;j<=n;j++) {
			cin>>wei[++cnt];
			node[cnt] = (1<<(i-1-1)) | (1<<(j-1));
		}		
	}
	int ans =0;
	for (int i=1;i<=cnt;i++) { 
		for (int j=0;j<(1<<n);j++) {
			if ((j&node[i]) == 0) { // 表示没有相同的节点
				dp[j|node[i]] = max(dp[j|node[i]], dp[j]+wei[i]);
				ans = max(ans, dp[j|node[i]]);
			}
		}
	}
	
	cout << ans << '\n';
	
	
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
